在本文中,我們將向您展示如何使用 SFTP(安全文件傳輸協(xié)議),也稱為 SSH 文件傳輸協(xié)議,在本地機器和遠程機器之間安全地傳輸文件。命令行提供了其他替代文件傳輸功能,例如SCP,它在后臺也使用 SSH(安全外殼)。在示例中,我們將使用托管在本地計算機上的示例文件 netflix_titles.csv.zip,我們將使用 SFTP 安全地傳輸它。
使用 SSH 登錄遠程服務(wù)器
SSH 在兩個系統(tǒng)之間創(chuàng)建安全連接。對于此示例,您將需要一個本地和一個遠程系統(tǒng)。如果您沒有遠程系統(tǒng),請在 Windows 或 Linux 上快速配置遠程服務(wù)器并使用您的 root(用戶名)和密碼登錄以進行身份??驗證:
ssh root@172.105.186.216 root@172.105.186.216的密碼: 上次登錄:Fri Feb 26 14:28:52 2021 from 180.150.39.150 [ root@sm2134-216 ~]#
或者,您可以生成用于身份驗證的 SSH 密鑰(公鑰和私鑰對)并使用它登錄到遠程服務(wù)器。要確保遠程服務(wù)器上不存在任何文件,請檢查當(dāng)前目錄并列出該目錄的內(nèi)容:
[ root@sm2134-216 ~]# pwd /root [ root@sm2134-216 ~]# ls
如果您配置了新服務(wù)器,則根目錄中將沒有文件。退出遠程機器并跳回本地機器并列出當(dāng)前目錄中的文件和子目錄:
[ root@sm2134-216 ~]# exit ??▓ ~/Projects/ServerMania ▓??─────────────────??▓ 在 12:10 花了 6m 1s ≡ : 39 ▓?? ? netflix_titles.csv.zip
該目錄包含一個文件netflix_titles.csv.zip,我們將使用 SFTP 命令將其傳輸?shù)竭h程計算機。在本例中,我們使用的是 root 用戶,但請確保您的用戶對遠程服務(wù)器具有寫權(quán)限。
使用 SFTP 登錄遠程服務(wù)器
SFTP或安全文件傳輸協(xié)議是對傳統(tǒng)FTP(文件傳輸協(xié)議)的升級。SFTP 使用 SSH(安全外殼)來保護連接。
讓我們使用 SFTP 命令登錄到遠程機器并啟動 SFTP 會話并運行?或幫助命令:
? sftp root@172.105.186.216 root@172.105.186.216的密碼: 連接到 172.105.186.216。 sftp> ?
這將列出所有可能的 SFTP 命令,但我們只想查看其中的幾個。這些命令中的大多數(shù)類似于用于導(dǎo)航、文件和目錄創(chuàng)建等的基本 shell 命令。讓我們看一些 SFTP 命令的示例:
- sftp> put?- 上傳文件
- sftp> get?- 下載文件
- sftp> cd path?- 將遠程目錄更改為“路徑”
- sftp> pwd?- 顯示遠程工作目錄
- sftp> lcd path?- 將本地目錄更改為“路徑”
- sftp> lpwd?- 顯示本地工作目錄
- sftp> ls?- 顯示遠程工作目錄的內(nèi)容
- sftp> lls?- 顯示本地工作目錄的內(nèi)容
在下面的代碼片段中,您可以看到上面提到的一些命令的示例在 SFTP 提示符下運行:
??▓ ~/Projects/ServerMania ▓??────────────────────────────??▓ ≡ 20:51: 54 ▓?? ? sftp root@172.105.186.216 root@172.105.186.216的密碼: 連接到172.105.186.216。 sftp> pwd 遠程工作目錄:/root sftp> ls sftp> lpwd 本地工作目錄:/Users/kovid/Projects/ServerMania sftp> sftp> mkdir files sftp> cd files sftp> pwd 遠程工作目錄:/root/files sftp> cd .. sftp> rmdir 文件 sftp>
既然您知道如何導(dǎo)航本地機器和遠程服務(wù)器的文件系統(tǒng),您將學(xué)習(xí)如何將文件從一個機器傳輸?shù)搅硪粋€機器。
將文件從本地計算機傳輸?shù)竭h程服務(wù)器
首先,讓我們看看如何使用安全文件傳輸協(xié)議將文件從本地機器傳輸?shù)竭h程機器。登錄服務(wù)器以訪問 SFTP 提示并導(dǎo)航到本地目錄,該目錄包含要傳輸?shù)奈募?/p>
連接到 172.105.186.216。 sftp> lpwd 本地工作目錄:/Users/kovid sftp> lcd /Users/kovid/Projects/ServerMania sftp> lpwd 本地工作目錄:/Users/kovid/Projects/ServerMania sftp> lls netflix_titles.csv.zip sftp> put netflix_titles. csv.zip 上傳 netflix_titles.csv.zip 到 /root/netflix_titles.csv.zip netflix_titles.csv.zip 100% 1207KB 1.5MB/s 00:00 sftp>
如您所見,使用put命令,我們已成功將文件netflix_titles.csv.zip從本地機器傳輸?shù)竭h程機器。請注意,我們沒有提供遠程機器上的任何路徑,因此文件被復(fù)制到遠程機器的當(dāng)前目錄中。通過運行l(wèi)s命令驗證文件是否已被復(fù)制:
sftp> pwd 遠程工作目錄:/root sftp> ls netflix_titles.csv.zip sftp> bye
使用bye命令關(guān)閉連接(SFTP 會話)。
將文件從遠程服務(wù)器傳輸?shù)奖镜赜嬎銠C
現(xiàn)在,讓我們從本地機器中刪除本地文件,然后使用get命令從遠程服務(wù)器獲取遠程文件將其復(fù)制回來:
? pwd /Users/kovid/Projects/ServerMania ? ls netflix_titles.csv.zip ??▓ ~/Projects/ServerMania ▓??──────────────────── ────??▓ ≡ 21:16:22 ▓?? ? rm netflix_titles.csv.zip ??▓ ~/Projects/ServerMania ▓??───────────── ────────────??▓ ≡ 21:16:32 ▓?? ? ls ??▓ ~/Projects/ServerMania ▓??────────────── ──────────────??▓ ≡ 21:16:34 ▓?? ?
從本地系統(tǒng)中刪除文件后,再次與遠程機器建立 SFTP 連接:
? sftp root@172.105.186.216 root@172.105.186.216的密碼: 連接到 172.105.186.216。 sftp> get netflix_titles.csv.zip 獲取 /root/netflix_titles.csv.zip 到 netflix_titles.csv.zip /root/netflix_titles.csv.zip 100% 1207KB 4.8MB/s 00:00 sftp> sftp> lpwd 本地工作目錄: /Users/kovid/Projects/ServerMania sftp> lls netflix_titles.csv.zip sftp> 再見
或者,您也可以使用 SFTP 命令將遠程文件復(fù)制到本地系統(tǒng),而無需從本地命令行建立持久連接。這不必使用get命令。看下面的命令:
??▓ ~/Projects/ServerMania ▓??────────────────────────??▓ ≡ 21:25:12 ▓?? ? sftp root@172.105.186.216 :netflix_titles.csv.zip 。 root@172.105.186.216的密碼: 連接到 172.105.186.216。 獲取 /root/netflix_titles.csv.zip 到 ./netflix_titles.csv.zip /root/netflix_titles.csv.zip 100% 1207KB 4.8MB/s 00:00 ??▓ ~/Projects/ServerMania ▓??──── ──────────────??▓ 21:25:22 花了 4s ≡ ▓?? ?
下一步
SFTP 命令是一種在兩臺服務(wù)器之間直接傳輸文件的簡單且安全的方法。現(xiàn)在您擁有輕松使用此命令所需的一切!
還在為讓所有這些在 ServerMania 服務(wù)器上運行而尋求幫助嗎?聯(lián)系我們的支持團隊,或在下面的評論中分享您的反饋!